const fp = require('lodash/fp')

// 空格
const f = fp.flowRight(fp.replace(/\s+/g, '_'), fp.toLower)
console.log(f('Hello            World'))
// hello_world
// 数据处理的过程定义成为与数据无关的合成运算

// 小驼峰
const fx = fp.replace(/[A-Z]/g, (cur) => '_' + cur.toLowerCase())
console.log(fx('helloWorld'))
// hello_world

// 大驼峰
const fd = fp.replace(/[A-Z]/g, (cur) => '_' + cur.toLowerCase())
console.log(fd('HelloWorld').slice(1))
// hello_world

// [^_] 它匹配任何没有包含在方括号中的字也就是_ 后面的那个字符$1
// $0就是_开头的和后面的那个字母
const f_ = fp.replace(/(?:_+([^_]))/g, ($0, $1) => $1.toUpperCase())
console.log(f_('hello_world'))
